package basic;

import org.junit.*;

public class TypeTest {
	
	@Test
	public void typeConvert() {
		// java参与运算的最小单位int : +,-,*,/,%   byte,short,char要申请参与提升为int
		byte b1 = 1;
		byte b2 = 2;
		byte b3 = (byte) (b1 + b2);  //Type mismatch: cannot convert from int to byte
		
		// %运算符和第一个运算数一致
		System.out.println(5 % 3);  // 2
		System.out.println(5 % -3); // 2
		System.out.println(-5 % 3); // -2
		System.out.println(-5 % -3); // -2
		System.out.println(5 % 13);  // 5
	}
	
	@Test
	public void incredecre() {
		int i = 1;  // ++i,  i+=1, i=i+1
//		int j = ++i;
//		int j = i++;
		
		//      1     2     3
//		int j = i++ + i++ + i++;
		//        2     3     4
//		int j = ++i + ++i + ++i;
		//      1       3   3       5
		int j = i++ + ++i + i++ + ++i;
		System.out.format("i= %d,j=%d",i,j);
		
		byte b = 1;
		short s = 2;
		long l = 3;
		float f = 1.1f;
		double d = 2.2;
		char c = 48;  // '0'=48  'a'=97  'A'=65   \n换行   \t制表位4个空格
		double result =  b + s - i + l * f + d / c;
		// int + int - int + long * float + double / int
		// int + int - int + float + double
		//  int - int + float + double
		//    int + float + double
		//    float + double 
		//  double + double = double
	}
	
	@Test
	public void thireEyes() {
		int a = 1,b = 2;
		//  A ? true : false
		System.out.println(true ? 1 : 0);
		System.out.println(a > b ? a : b);
	}
	
	@Test
	public void finalVariable() {
		// 常量: 变不了的量: 1.字面常量  1，2，'a'   2.符号常量final 全大写
		final byte MAX_VALUE = 127;
	
	}
}
